/*
 * @Author: 鱿鱼溪学院
 * @Date: 2025-11-08 16:21:51
 * @LastEditTime: 2025-11-08 16:29:12
 * @LastEditors: 鱿鱼溪学院
 * @Description: 管理员模型
 * @FilePath: \jmd-ser-ts\app\model\Admin.ts
 * Copyright 鱿鱼溪学院 by edu v1.0
 * 天道酬勤
 */
import { Table, Column, DataType, Model } from "sequelize-typescript";

// 管理员模型
@Table({
  tableName: "jmd_admin",
  timestamps: true,
  underscored: true,
  comment: "管理员信息表",
})
export class Admin extends Model {
  // 管理员ID
  @Column({
    type: DataType.INTEGER,
    primaryKey: true,
    autoIncrement: true,
    comment: "管理员ID",
  })
  declare id: number;

  // 用户名
  @Column({
    type: DataType.STRING(50),
    allowNull: false,
    unique: true,
    comment: "用户名",
  })
  username!: string;

  // 密码
  @Column({
    type: DataType.STRING(255),
    allowNull: false,
    comment: "密码",
  })
  password!: string;

  // 头像
  @Column({
    type: DataType.STRING(255),
    allowNull: true,
    defaultValue: '',
    comment: "头像",
  })
  avatar!: string;

  // 描述
  @Column({
    type: DataType.STRING(255),
    allowNull: true,
    defaultValue: '',
    comment: "描述",
  })
  description!: string;

  // 邮箱
  @Column({
    type: DataType.STRING(100),
    allowNull: true,
    defaultValue: '',
    comment: "邮箱",
  })
  email!: string;

  // 手机号
  @Column({
    type: DataType.STRING(20),
    allowNull: true,
    defaultValue: '',
    comment: "手机号",
  })
  phone!: string;

  // 管理员状态
  @Column({
    type: DataType.TINYINT,
    allowNull: false,
    defaultValue: 1,
    comment: "管理员状态: 0-禁用, 1-启用",
  })
  status!: number;

  // 最后登录时间
  @Column({
    type: DataType.DATE,
    allowNull: true,
    comment: "最后登录时间",
  })
  last_login_time!: Date;

  // 最后登录IP
  @Column({
    type: DataType.STRING(50),
    allowNull: true,
    defaultValue: '',
    comment: "最后登录IP",
  })
  last_login_ip!: string;
}
